package com.kobe.service.impl;

import com.kobe.common.utils.SecurityUtils;
import com.kobe.domain.SysAssetInfo;
import com.kobe.domain.dto.SysAssetInfoDTO;
import com.kobe.domain.vo.SysAssetInfoVO;
import com.kobe.mapper.InfoMapper;
import com.kobe.service.InfoService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * 资产信息服务实现类
 */
@Service
@RequiredArgsConstructor
public class InfoServiceImpl implements InfoService {

    private final InfoMapper infoMapper;

    /**
     * 获取资产信息列表
     */
    @Override
    public List<SysAssetInfoVO> list(SysAssetInfoDTO sysAssetInfoDTO) {
        return infoMapper.selectList(sysAssetInfoDTO);
    }

    /**
     * 根据资产信息ID查询资产信息详细
     */
    @Override
    public SysAssetInfoVO getInfo(Long infoId) {
        return infoMapper.getById(infoId);
    }

    /**
     * 修改资产信息
     */
    @Override
    public int update(SysAssetInfo sysAssetInfo) {
        sysAssetInfo.setUpdateTime(new Date());
        return infoMapper.update(sysAssetInfo);
    }

    /**
     * 根据资产名称查询资产信息详细
     */
    @Override
    public SysAssetInfoVO getInfoByAssetName(String assetName) {
        return infoMapper.selectByAssetName(assetName);
    }


    /**
     * 添加资产信息
     */
    @Override
    public int add(SysAssetInfo sysAssetInfo) {
        sysAssetInfo.setCreator(SecurityUtils.getUsername());
        sysAssetInfo.setCreateTime(new Date());
        sysAssetInfo.setUpdateTime(new Date());
        return infoMapper.insert(sysAssetInfo);
    }

    /**
     * 删除资产信息
     */
    @Override
    public void deleteBatch(Long[] ids) {
        infoMapper.deleteBatch(ids);
    }

     /**
      * 查询资产信息列表
      */
     @Override
     public List<SysAssetInfo> listV2(SysAssetInfo sysAssetInfo) {

        return infoMapper.selectListV2(sysAssetInfo);
    }
}
